<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>set_map</title>
  </head>
  <body>
    <script>
      /*
        Set       相当于数组，里面的元素是唯一的，里面元素可以是任意类型
        WeakSet   相当于数组，里面的元素是唯一的，
                   元素类型只能是对象，且一旦对象外面没有引用，就会自动被垃圾回收机制回收
        Map       相当于对象，key可以是任意类型，value可以是任意类型
                  key不能重复
        WeakMap   相当于对象，key必须是对象类型，value可以是任意类型
                  key不能重复，且一旦对象外面没有引用，就会自动被垃圾回收机制回收
      */
      // const s1 = new Set();
      // console.log(s1);
      // s1.add(true);
      // s1.add({ name: "jack" });
      // s1.add([1, 2, 3]);
      // s1.add(function () {});
      // s1.add(true);
      // console.log(s1);

      // const arr = [1, 2, 1, 2, 3];
      // console.log([...new Set(arr)]);

      // const ws1 = new WeakSet();
      // // ws1.add(1);
      // // ws1.add(true);
      // let person = { name: "jack" };
      // ws1.add(person);
      // ws1.add([1, 2, 3]);
      // ws1.add(function () {});
      // // ws1.add(true);
      // console.log(ws1.has(person));
      // person = null;
      // console.log(ws1.has(person));
    </script>
  </body>
</html>
